using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;

using Entities;

namespace IDAL
{
    public interface IProductDAO
    {
        IList<ProductInfo> GetAll();

        ProductInfo GetByID(string productID);

        int CountProduct(string categoryID);

        IList<ProductInfo> GetByCategoryID(string categoryID);

        IList<ProductInfo> GetTop3Product();

        IList<ProductInfo> GetRandom6Product();

        IList<ProductInfo> GetOnlyName();

        bool Insert(ProductInfo product);

        bool Update(ProductInfo product);

        bool UpdatePicture(string imagePath, string productID);

        bool UpdateUnitOnOrder(string unitOnOrder, string productID);

        bool UpdateRating(string productID);

        bool Delete(ProductInfo product);
        IList<ProductInfo> GetProductByAllCategoryAndSearchkey(string searchkey);

        string GetCountProductByAllCategoryAndSearchkey(string searchkey);

        IList<ProductInfo> GetProductByAllCategoryAndPrice(string pricefrom, string priceto);

        string GetCountProductByAllCategoryAndPrice(string pricefrom, string priceto);

        IList<ProductInfo> GetProductByCategoryAndPrice(string pricefrom, string priceto, int categoryID);

        string GetCountProductByCategoryAndPrice(string pricefrom, string priceto, int categoryID);

        IList<ProductInfo> GetProductByCategoryAndSearchkey(string searchkey, int categoryID);

        string GetCountProductByCategoryAndSearchkey(string searchkey, int categoryID);

        IList<ProductInfo> GetProductByAllCategoryAndPriceAndSearchkey(string searchkey, string pricefrom, string priceto);

        string GetCountProductByAllCategoryAndPriceAndSearchkey(string searchkey, string pricefrom, string priceto);

        IList<ProductInfo> GetProductByCategoryAndPriceAndSearchkey(string searchkey, string pricefrom, string priceto, int categoryID);

        string GetCountProductByCategoryAndPriceAndSearchkey(string searchkey, string pricefrom, string priceto, int categoryID);

    }
}
